home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 March
/
EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso
/
cd-sup
/
newiconsv4
/
developers
/
autodocs
/
newicon.doc
Wrap
Text File
|
1999-01-01
|
9KB
|
266 lines
TABLE OF CONTENTS
newicon.library/--Introduction--
newicon.library/FreeNewDiskObject
newicon.library/FreeRemappedImage
newicon.library/GetDefNewDiskObject
newicon.library/GetNewDiskObject
newicon.library/PutNewDiskObject
newicon.library/RemapChunkyImage
newicon.library/--Introduction-- newicon.library/--Introduction--
The goal behind newicon.library is to offer an interface for the
application programmer wishing to directly support NewIcons, be it for
icon editors or Workbench replacements. This ensures that your product
will be able to support NewIcons even if the Newicons executable isn't
running.
The standard procedure is to call GetNewDiskObject(), and check if any
of the ndo_NormalImage or ndo_SelectedImage fields are NULL. If they are,
then this icon has no newicon data, so you can use the ndo_StdObject
pointer to access the regular DiskObject structure. If you have something
in ndo_NormalImage and ndo_SelectedImage, then call RemapChunkyImage()
on them to obtain Image structures remapped to the specified screen.
If you know you're dealing with a chunky display, you might wish to handle
the chunky data yourself, which would be more efficient than remapping to
an Intuition Image structure and blitting back on your chunky screen.
In that case, don't use RemapChunkyImage(), and handle the
ndo_#?Image->ChunkyData yourself.
Once you're done with your newicon, call FreeRemappedImage() on the
remapped images to free them up (if you used RemapChunkyImage()). After
that, call FreeNewDiskObject() on your NewDiskObject structure (even if
you only used the DiskObject pointer from it!) to free it.
newicon.library/FreeNewDiskObject newicon.library/FreeNewDiskObject
NAME
FreeNewDiskObject() -- Free all memory allocated in a NewDiskObject.
SYNOPSIS
FreeNewDiskObject(newdiskobj)
A0
VOID FreeNewDiskObject(struct NewDiskObject *);
FUNCTION
Pretty much like the standard icon.library FreeDiskObject() call.
It will deallocate any memory allocated for a NewDiskObject, and
the object itself. This is the ONLY way to deallocate a NewDiskObject
structure that has been allocated by GetNewDiskObject().
INPUTS
newdiskobj -- A pointer to a NewDiskObject structure.
RESULT
None.
SEE ALSO
newicon.library/GetNewDiskObject(), icon.library/FreeDiskObject()
newicon.library/FreeRemappedImage newicon.library/FreeRemappedImage
NAME
FreeRemappedImage() -- Frees a remapped image and its pens.
SYNOPSIS
FreeRemappedImage(image, screen)
A0 A1
VOID FreeRemappedImage(struct Image *, struct Screen *)
FUNCTION
This function frees a remapped image and also frees its pens.
Therefore you must call it only after you are done with the image:
if you call it while it is still displayed on the screen, your image
could see its colors mangled since the pens would be freed.
You must supply a screen argument. It must either be the same
passed to RemapChunkyImage, or NULL if the screen has been closed
in the meantime, so the pens don't need to be released.
INPUTS
image -- A pointer to a remapped Image structure.
screen -- A pointer to the Screen for which your ChunkyData was
remapped, or NULL if the screen has been closed since then.
RESULT
None.
SEE ALSO
newicon.library/RemapChunkyImage()
newicon.library/GetDefNewDiskObject newicon.library/GetDefNewDiskObject
NAME
GetDefNewDiskObject - read default disk object, with NewIcons
support. (V40)
SYNOPSIS
newdiskobj = GetDefNewDiskObject(def_type)
D0 D0
struct NewDiskObject *GetDefNewDiskObject(LONG);
FUNCTION
Pretty much like the standard icon.library GetDiskObject() call.
In fact, it merely calls it, embedding the returned disk object
in a NewDiskObject structure, with the NewIcons imagery if the
default disk object had any.
The valid def_types can be found in workbench/workbench.h and
currently include WBDISK thru WBGARBAGE. If the call fails,
it will return zero. The reason for the failure may be obtained
via IoErr().
INPUTS
def_type - default icon type (WBDISK thru WBKICK). Note that the
define 'WBDEVICE' is not currently supported.
RESULTS
newdiskobj -- the default Workbench disk object in question
SEE ALSO
icon.library/GetDefDiskObject()
newicon.library/GetNewDiskObject newicon.library/GetNewDiskObject
NAME
GetNewDiskObject() -- Read a disk object, with NewIcons support.
SYNOPSIS
newdiskobj = GetNewDiskObject(name)
D0 A0
struct NewDiskObject *GetNewDiskObject(char *);
FUNCTION
Pretty much like the standard icon.library GetDiskObject() call.
It will read the Workbench disk object specified in the name parameter,
adding the ".info" suffix itself, and return a filled NewDiskObject
structure. If the call fails, it returns zero. The reason for the
failure can be obtained by calling IoError().
This routine can be used if you wish to obtain a standard diskobject,
with separate pointers to NewIcons chunky data if there's NewIcons
imageries present in the loaded disk object. No further processing
is done (i.e. the chunky data aren't remapped, etc...)
Once finished with it, you must use FreeNewDiskObject() to free the
memory that was allocated for it.
INPUTS
name -- The name (char *) of the object (without the ".info" suffix).
RESULT
newdiskobj -- a filled NewDiskObject structure. You must call
FreeNewDiskObject() once you're done with it.
SEE ALSO
newicon.library/FreeNewDiskObject(), newicon.library/RemapChunkyData(),
icon.library/GetDiskObject()
newicon.library/PutNewDiskObject newicon.library/PutNewDiskObject
NAME
PutNewDiskObject() -- write a NewDiskObject to disk.
SYNOPSIS
status = PutNewDiskObject(name, newdiskobj)
D0 A0 A1
BOOL PutNewDiskObject(char *, struct NewDiskObject *);
FUNCTION
Pretty much like the standard icon.library PutDiskObject() call.
This routine will write a NewDiskObject structure and its related
information to disk as a standard icon, encoding the chunky data
(if present in the structure) as NewIcons tooltypes in the process.
The filename of the info file is specified as the name parameter,
which will automaticaly get the ".info" suffix added. If the call
fails, it returns zero. The reason for the failure can be obtained
by calling IoError().
INPUTS
name -- The name (* char) of the object (without the ".info" suffix).
newdiskobj -- A pointer to a NewDiskObject structure.
RESULT
status -- TRUE if the call was successfull, else FALSE.
SEE ALSO
newicon.library/FreeNewDiskObject(),
newicon.library/GetNewDiskObject(), icon.library/PutDiskObject()
newicon.library/RemapChunkyImage newicon.library/RemapChunkyImage
NAME
RemapChunkyImage() -- Remaps a chunky image to be displayed on screen
SYNOPSIS
image = RemapChunkyImage(chunkyimage, screen)
D0 A0 A1
struct Image *RemapChunkyImage(struct ChunkyImage *, struct Screen *);
FUNCTION
Remaps a ChunkyImage to be displayed on a screen. Caller must either
be the owner of the screen, or have locked it. Under KS 3.0 (V39) and
up, it will use ObtainBestPen() if screen has shareable pens.
Otherwise will use the available colors.
The image is returned as an Intuition Image structure, remapped so
chunky data palette match as closely as possible with the target
screen's palette, depending on the precision setting chosen by the
user in the NewIconsPrefs editor, and the available pens.
Once done with your image, you should call FreeRemappedImage() to free
it and any allocated pens.
INPUTS
chunkydata -- A pointer to a ChunkyImage structure.
screen -- A pointer to the destination Screen.
RESULT
Image -- An Intuition Image structure, or NULL if it fails.
NOTES
If the user has enabled the RTG Mode in the NewIconsPrefs, then the
remapped image will be in Fast RAM (if there's any, else it will
try to allocate Chip RAM instead).
SEE ALSO
newicon.library/FreeRemappedImage()